package com.stella.ieproductivitybackend.mapper;

import com.stella.ieproductivitybackend.entity.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 品牌类型页数据层接口
 */
@Mapper
public interface TypeMapper {
    /**
     * 品牌类型列表
     */
    List<String> getTypeList();

    /**
     * 工厂列表
     */
    List<Factory> getFactoryList(@Param("type") String type);

    /**
     * 品牌列表
     */
    List<Brand> getBrandList(@Param("type") String type);

    /**
     * 型体数量
     */
    Integer getModelCount(@Param("type") String type);

    /**
     * 型体列表
     */
    List<Model> getModelList(@Param("type") String type);

    /**
     * 搜索型体
     */
    List<Model> searchModel(@Param("type") String type, @Param("model") String model);

    /**
     * 纯粹达成率图表
     */
    List<PureChart> getPureChart(@Param("type") String type);

    /**
     * 目标纯粹达成率图表
     */
    PureChart getTargetPureChart(@Param("type") String type);

    /**
     * 纯粹达成率详情
     */
    List<Pure> getPureDetail(@Param("type") String type);

    /**
     * 目标纯粹达成率详情
     */
    List<Pure> getTargetPureDetail(@Param("type") String type);

    /**
     * 入库标准秒值图表
     */
    List<WarehousingChart> getWarehousingChart(@Param("type") String type);

    /**
     * 入库标准秒值图表详情
     */
    List<Warehousing> getWarehousingInfo(@Param("type") String type);

    /**
     * 入库标准秒值工厂
     */
    List<String> getWarehousingFactory(@Param("type") String type);

    /**
     * 入库标准秒值年份
     */
    List<String> getWarehousingYear(@Param("type") String type);

    /**
     * 入库标准秒值月份
     */
    List<String> getWarehousingMonth(@Param("type") String type);

    /**
     * 入库标准秒值详情
     */
    List<Warehousing> getWarehousingDetail(@Param("type") String type, @Param("factory") String factory, @Param("year") String year);

    /**
     * 入库标准秒值对比
     */
    List<Warehousing> getWarehousingCompare(@Param("type") String type, @Param("factory1") String factory1, @Param("year1") String year1, @Param("month1") String month1, @Param("factory2") String factory2, @Param("year2") String year2, @Param("month2") String month2);

    /**
     * 入库数量图表
     */
    List<QuantityChart> getQuantityChart(@Param("type") String type);

    /**
     * 入库数量详情
     */
    List<Quantity> getQuantityDetail(@Param("type") String type);

    /**
     * 直工 PPH 工厂
     */
    List<String> getDirectFactory(@Param("type") String type);

    /**
     * 直工 PPH 年份
     */
    List<String> getDirectYear(@Param("type") String type);

    /**
     * 直工 PPH 月份
     */
    List<String> getDirectMonth(@Param("type") String type);

    /**
     * 直工 PPH 型体
     */
    List<String> getDirectModel(@Param("type") String type);

    /**
     * 直工 PPH 制程
     */
    List<String> getDirectOperation(@Param("type") String type);

    /**
     * 直工 PPH 详情
     */
    List<DirectPPH> getDirectPPH(@Param("type") String type, @Param("factory") String factory, @Param("year") String year, @Param("month") String month, @Param("model") String model, @Param("operation") String operation);
}
